hugo@dme.ufrj.brFigura 4.6 de [AME]
Figura 4.7 de [AME]: Regressão do salário de um indivíduo dadas as covariáveis idade e anos de estudo.
Figura 8.3 de [ITSL]: Particionamento proveniente de divisão binária recursiva (direita) e particionamento mais geral (esquerda)
Figura 4.8 de [AME]: a) Onde chegamos com o passo-a-passo anterior; b) onde queremos chegar no próximo passo
Figura 4.8 de [AME]: b) Onde chegamos com o passo-a-passo anterior; c) d) continuações hipotéticas do processo
Figura 8.3 de [ITSL]: Árvore (esquerda) e gráfico da função \(g\) correspondente (direita)
\(X \sim \mathcal{U}[0, 4]\)
\(f(x) = \sin(\pi x)\)
\(Y = f(X) + \varepsilon\)
\(\varepsilon \sim \mathcal{N}(0, 0.4)\)
scikit-learn - DecisionTreeRegressor
DTR = DecisionTreeRegressor(max_depth = None, min_samples_leaf = 5)
DTR.fit(x_tr.reshape(-1, 1), y_tr)
print('ATENÇÃO: Diversos hiperparâmetros para ajustar!')ATENÇÃO: Diversos hiperparâmetros para ajustar!
Visualizando (ou tentando visualizar…) a árvore
DTR = DecisionTreeRegressor(max_depth = None, min_samples_leaf = 5)
param_grid_DTR = {"ccp_alpha": [0.0001, 0.0001, 0.001, 0.01, 0.03, 0.05, 0.07, 0.1, 0.2]}
DTRCV = GridSearchCV(DTR, param_grid = param_grid_DTR, scoring='neg_mean_squared_error', cv = 5)
DTRCV.fit(x_tr.reshape(-1, 1), y_tr)
print(DTRCV.best_estimator_)DecisionTreeRegressor(ccp_alpha=0.01, min_samples_leaf=5)
scikit-learn - BaggingRegressor
DTB = BaggingRegressor(estimator = DecisionTreeRegressor(max_depth = None, min_samples_leaf = 5), n_estimators = 1000)
print('ATENÇÃO: Diversos hiperparâmetros para ficar atento/a!')ATENÇÃO: Diversos hiperparâmetros para ficar atento/a!
BaggingRegressor no scikit-learnDecisionTreeRegressor, RandomForestRegressor e seus equivalentes para classificação (atributo feature_importances_)scikit-learn - make_regression
X, y = make_regression(n_samples = 1000, n_features = 100,
n_informative = 10, n_targets = 1, noise = 1)
DT_importance = RandomForestRegressor(n_estimators = 100, max_depth = None,
min_samples_leaf = 5, max_features = None)
print('Florestas aleatórias com \'max_features = None\' é equivalente ao bagging!')
print('Vamos ver florestas aleatórias logo a seguir')Florestas aleatórias com 'max_features = None' é equivalente ao bagging!
Vamos ver florestas aleatórias logo a seguir
scikit-learn - RandomForestRegressor
RF = RandomForestRegressor(n_estimators = 1000, max_depth = None, min_samples_leaf = 5, max_features = 'log2')
print('ATENÇÃO: Diversos hiperparâmetros para ficar atento/a!')
print('SÓ TEMOS UM ATRIBUTO!!!! É equivalente ao bagging.')ATENÇÃO: Diversos hiperparâmetros para ficar atento/a!
SÓ TEMOS UM ATRIBUTO!!!! É equivalente ao bagging.